#include<bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e18;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
}
int total = 0;
// given a starting position i, what is the max value
// the starting player can guarantee
vector<int> dp(n+1, 0);
for(int i = n-1; i >= 0; i--) {
total += v[i];
// dp[i+1] -> player chooses to take the slice and
// other player becomes the starting player in rest
// of the game
//
// total - dp[i+1] -> player chooses to give away the slice
// and keep the decoder token, now this player is the starting
// player in the rest of the game
dp[i] = max(dp[i+1], total - dp[i+1]);
}
cout << total - dp[0] << ' ' << dp[0] << '\n';
return 0;
}
227B - Effective Approach | 1534B - Histogram Ugliness |
1611B - Team Composition Programmers and Mathematicians | 110A - Nearly Lucky Number |
1220B - Multiplication Table | 1644A - Doors and Keys |
1644B - Anti-Fibonacci Permutation | 1610A - Anti Light's Cell Guessing |
349B - Color the Fence | 144A - Arrival of the General |
1106A - Lunar New Year and Cross Counting | 58A - Chat room |
230A - Dragons | 200B - Drinks |
13A - Numbers | 129A - Cookies |
1367B - Even Array | 136A - Presents |
1450A - Avoid Trygub | 327A - Flipping Game |
411A - Password Check | 1520C - Not Adjacent Matrix |
1538B - Friends and Candies | 580A - Kefa and First Steps |
1038B - Non-Coprime Partition | 43A - Football |
50A - Domino piling | 479A - Expression |
1480A - Yet Another String Game | 1216C - White Sheet |